import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.UnknownHostException;

@SuppressWarnings({ "serial" })
public class DatenAustEyeSight extends HauptBild {

	static boolean connected = true;
	static java.net.Socket socket;

	static void ablauf() throws IOException {
		problemEyesight = false;

		socket = Socket();
		System.out.println("Socket bezogen: " + socket + " Verbindung steht");

		System.out.println(produkt.getArtikelnummerString());

		if (socket != null) {
			schreibeNachricht(socket, produkt.getArtikelnummerString());

			socket = Socket();

			String empfangen = leseNachricht(socket);

			if (empfangen.equals("nichts")) {
				// Execption abfangen
			} else {
				speichereNachricht(empfangen);
			}

			socket.close();
		} else {
			problemEyesight = true;
		}
	}

	// Nachricht senden
	static void schreibeNachricht(java.net.Socket socket1, String nachricht) {
		// Socket Null
		PrintWriter printWriter = null;
		try {
			printWriter = new PrintWriter(new OutputStreamWriter(
					socket1.getOutputStream()));
		} catch (IOException e) {
			problemEyesight = true;
			Meldungen2 meldung = new Meldungen2();
			meldung.geoeffnetFehler(4);
		}
		printWriter.print(nachricht);
		printWriter.flush();

	}

	static String leseNachricht(java.net.Socket socket1) throws IOException {
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(socket1.getInputStream()));
		char[] buffer = new char[512];
		int anzahlZeichen = bufferedReader.read(buffer, 0, 250); // blockiert
																	// bis
																	// Nachricht
																	// empfangen

		System.out.println(anzahlZeichen);

		if (anzahlZeichen == -1) {
			System.out.println("Keine Nachricht erhalten");

			Meldungen2 meldung = new Meldungen2();
			meldung.geoeffnetFehler(7);
			problemEyesight = true;
		} else {

			String nachricht = new String(buffer, 0, anzahlZeichen);

			System.out.println(nachricht);

			return nachricht;
		}
		return "0";
	}

	static java.net.Socket Socket() {
		connected = false;
		java.net.Socket socket1 = null;
		int port = 4556;

		try {
			socket1 = new java.net.Socket(ip, port);
		} catch (UnknownHostException e) {
			Meldungen2 meldungen = new Meldungen2();
			meldungen.geoeffnetFehler(4);
			problemEyesight = true;
		} catch (IOException e) {
			Meldungen2 meldungen = new Meldungen2();
			meldungen.geoeffnetFehler(4);
			problemEyesight = true;
		} // verbindet sich mit Server
		return socket1;
	}

	public static void socketClose() throws IOException {
		System.out.println("Socket geschlossen");
		if (socket.isConnected()) {
			socket.close();
		}

	}

	public static void speichereNachricht(String nachricht) {

		String[] resultat = new String[ist.length];
		String result[];
		int i = 0;

		result = nachricht.split(";");

		for (String s : result) {
			resultat[i++] = s;
		}

		// Werte in Klasse schreiben
		for (int j = 0; j < ist.length; j++)
			ist[j].setWert(resultat[j]);

	}

}